Aug*_*ger 1 javascript async-await
我越来越熟悉asyncawait库.
如果我是对的,这个:
var doSth = async function() {
var asyncResult = await promiseReturningFunction();
subFunction(asyncResult);
};
Run Code Online (Sandbox Code Playgroud)
相当于:
var doSth = function() {
promiseReturningFunction().then(function(asyncResult) {
subFunction(asyncResult);
});
};
Run Code Online (Sandbox Code Playgroud)
但是如果回调有两个参数.then(function(asyncResult1, asyncResult2) {})呢?
在其他一些语言中,我写道:
var asyncResult1, asyncResult2 = await promiseReturningFunction();
Run Code Online (Sandbox Code Playgroud)
但我不能在JS中这样做,可以吗?await是否返回一个数组?第一个论点?
我不能在JS中这样做,可以吗?
不,你不能.承诺只用一个值来实现.
JavaScript没有元组,但您可以使用数组.通过解构,您可以使其看起来几乎与其他语言一样:
async function promiseReturningFunction() {
await …;
…
return [result1, result2];
}
// elsewhere (in an async function):
var [asyncResult1, asyncResult2] = await promiseReturningFunction();
Run Code Online (Sandbox Code Playgroud)