Object.prototype.modify = function(modifications,prop){
modifications.forEach(modifier => {
this[prop] = modifier(this[prop])
})
}
function removeLastName(str){
return str.split(' ')[0]
}
function upperCase(str){
return str.toUpperCase()
}
function translate(str){
return new Promise((resolve,reject) => {
setTimeout(_ => resolve(str+"translated"),1000)
})
}
function prepareUser(user){
user.modify([removeLastName,upperCase],'name')
// user.modify([removeLastName,upperCase,trans],'name')
return user
}
var user = {
name: "simon madsen"
}
console.log(prepareUser(user));
こんにちは、どのように正規関数を使用して、約束を返す関数を使用することができますか。すべての私の修正機能が約束を返すことなく、私の修正機能なしで約束を返すことなく。通常の関数と約束を繰り返す
*「約束を返すために私の修正機能を持たない」*これは不可能です。 1つの関数が約束を返すとすぐに、それを呼び出す関数は約束を返す必要があります(またはコールバックを受け入れる)。 –
純粋な関数をすべて約束することを避けるには、1つの非同期関数のためにすべてを約束する必要がありますか? – user2386092
いいえ、*呼び出し元*は 'Promise.resolve(f())'を実行できます。 'f'が約束を返すと、それは単にその約束を返すだけです。 'f'が他の値を返す場合、その値に解決する約束が返されます。 –