我有以下示例中的两个问题:
为什么 x 在 y 之前记录?为什么是xa Promise?
我期待在它记录之前bar
等待foo
解决该值'Hello'
然后返回它。
let foo = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Hello');
}, 2000);
})
}
let bar = async () => {
let y = await foo();
console.log(y);
return y;
}
let x = bar();
console.log(x);
Run Code Online (Sandbox Code Playgroud)
我期待看到的是
'Hello' // console.log(y)
'Hello' // console.log(x)
Run Code Online (Sandbox Code Playgroud)
我得到的是
Promise {<pending>} // console.log(x)
'Hello' // console.log(y)
Run Code Online (Sandbox Code Playgroud)
不应该bar
等foo
解决后再返回y
吗?
任何帮助将非常感激!
我的初始状态如下所示,如果添加了新书或更改了价格,则新的更新数组来自服务,我的结果需要在初始状态下合并。
const initialState = {
booksData: [
{"Code":"BK01","price":"5"},
{"code":"BK02","price":"30"},
{"code":"BK03","price":"332"},
{"code":"BK04","price":"123"}
]
};
Run Code Online (Sandbox Code Playgroud)
来自服务器的更新的阵列,几乎没有记录更新/新
data: [
{"Code":"BK01","price":"10"},
{"code":"BK02","price":"25"},
{"code":"BK05","price":"100"}
]
Run Code Online (Sandbox Code Playgroud)
将更新后的数组与旧数组合并后,更新后的状态应变为。
booksData: [
{"Code":"BK01","price":"10"},
{"code":"BK02","price":"25"},
{"code":"BK03","price":"332"},
{"code":"BK04","price":"123"},
{"code":"BK05","price":"100"}
]
Run Code Online (Sandbox Code Playgroud) 他们是否删除了在React Dev Tools V4 中突出显示更新的功能?我似乎无法在任何地方找到它。我很想念它。