promiseA
的then
函式会传回新的promise(promiseB
),promiseA
该函式在解析后会立即解析,其值就是内从Success函数传回的值promiseA
。
在这种情况下promiseA
,将使用值- result
进行解析promiseB
,然后立即使用的值进行解析result + 1
。
访问的值的promiseB
方式与访问的结果的方式相同promiseA
。
promiseB.then(function(result) {
// here you can use the result of promiseB
});
编辑2019年12月 :async
/ await
现在是JS的标准配置,它允许使用上述方法的替代语法。您现在可以编写:
let result = await functionThatReturnsPromiseA();
result = result + 1;
现在没有了promiseB,因为我们已经使用展开了promiseA的结果await
,您可以直接使用它。
但是,await
只能在async
函数内部使用。因此,要略微缩小,必须像上面这样包含:
async function doSomething() {
let result = await functionThatReturnsPromiseA();
return result + 1;
}