ren*_*dom 5 javascript es6-promise
这段代码正确吗?我可以结合这样的承诺吗?
var data = {}
await getInfo(data.com)
.then(result => {data = result})
.catch(error => {})
doStuffOnlyAfterGetInfo(data)
Run Code Online (Sandbox Code Playgroud)
await是的,你可以这样做,你可以这样想:
await x其中x是 Promise 或任意值。在你的情况下,链式调用返回一个承诺。
所有这些都有效:
async function fn() {
try {
var a = await 20; // a = 20
var b = Promise.resolve(20); // b = 20
var c = Promise.reject(20); // This throws exception
var d = Promise.reject(20).catch(() => 30) // d = 30
var e = fetch(url) // same as fetch(url).then(e => /*...*/)
var f = fetch(url).then(res => res.json())
catch (e) {
console.log(e) // 20
}
}
Run Code Online (Sandbox Code Playgroud)
另外不要忘记,您只能await在async函数中使用。