【发布时间】:2018-04-06 12:05:58
【问题描述】:
基本上,我对 Promise 感到很困惑。因为,我还是个新手,不知道如何从 Callback 方法处理异步。
所以,我有这样的代码
const Search = function(name) { //
return new Promise((resolve, reject) => { //
let o = [{
"name": "Apple",
"quantity": 10
},
{
"name": "Grape",
"quantity": 5
}
]
let result = o.filter((n) => n.name == name)
if (result.length < 1) {
reject()
return
}
resolve(result[0])
})
}
const Buy = function(data, qty) {
return new Promise((resolve, reject) => {
let o = {
name,
quantity
} = data
o.quantity = parseInt(o.quantity) - qty
if (o.quantity < 0) {
throw new Error("Oops. Quantity is Empty!")
}
resolve(o)
})
}
const Result = function(test) {
console.log(test)
}
主要目的,我如何在 Buy 函数的 qty 参数中输入一个值?
我正在做这样的事情,但结果不是我想要的。我敢肯定,我的代码缺少一些东西,但我不知道。
Search("Apple")
.then(Buy, 4)
.then(Result)
结果是:
{ name: 'Apple', quantity: NaN }
主要目标是:
{ name: 'Apple', quantity: 6 }
无论如何谢谢:)
【问题讨论】:
标签: javascript asynchronous promise