从承诺中返回然后()
2022-08-30 01:22:51
我有一个像这样的javascript代码:
function justTesting() {
promise.then(function(output) {
return output + 1;
});
}
var test = justTesting();
我总是得到一个未定义的var测试值。我认为这是因为承诺尚未解决。有一种方法可以从承诺中返回值?
我有一个像这样的javascript代码:
function justTesting() {
promise.then(function(output) {
return output + 1;
});
}
var test = justTesting();
我总是得到一个未定义的var测试值。我认为这是因为承诺尚未解决。有一种方法可以从承诺中返回值?
当您从回调中返回某些内容时,这有点神奇。如果返回一个值,则使用该值调用下一个值。但是,如果您返回类似 promise 的东西,则下一个会等待它,并且仅在该 promise 解决(成功/失败)时调用。then()
then()
then()
要使用 promise,您必须调用创建 promise 的函数,或者您必须自己创建一个。你并没有真正描述你真正想要解决的问题,但以下是你自己如何做出承诺:
function justTesting(input) {
return new Promise(function(resolve, reject) {
// some async operation here
setTimeout(function() {
// resolve the promise with some value
resolve(input + 10);
}, 500);
});
}
justTesting(29).then(function(val) {
// you access the value from the promise here
log(val);
});
// display output in snippet
function log(x) {
document.write(x);
}
或者,如果您已经有一个返回 promise 的函数,则可以使用该函数并返回其 promise:
// function that returns a promise
function delay(t) {
return new Promise(function(resolve) {
setTimeout(function() {
resolve();
}, t);
});
}
function justTesting(input) {
return delay(100).then(function() {
return input + 10;
});
}
justTesting(29).then(function(val) {
// you access the value from the promise here
log(val);
});
// display output in snippet
function log(x) {
document.write(x);
}