【发布时间】:2020-04-21 23:22:30
【问题描述】:
我在做出一系列承诺时遇到了一些困难。我有以下云功能
export const updateUser = functions.region('europe-west1').https.onCall(async(data, context) => {
const userID : string = Authentication.authenticate(context);
Validator.validateString('displayName', data['displayName']);
Validator.validateString('photoURL', data['photoURL']);
const userInfo = {
displayName:data['displayName'],
photoURL:data['photoURL'],
};
const userReference = await firestore.collection('users').doc(userID);
const promises = [];
promises.push(admin.auth().updateUser(userID, {displayName:userInfo.displayName, photoURL:userInfo.photoURL}));
promises.push(userReference.update(userInfo));
await Promise.all<admin.auth.UserRecord, FirebaseFirestore.WriteResult>(promises);
});
但是Promise.all<admin.auth.UserRecord, FirebaseFirestore.WriteResult>(promises);给出以下错误
Argument of type '(Promise<WriteResult> | Promise<UserRecord>)[]' is not assignable to parameter of type 'readonly [UserRecord | PromiseLike<UserRecord>, WriteResult | PromiseLike<WriteResult>]'.
Type '(Promise<WriteResult> | Promise<UserRecord>)[]' is missing the following properties from type 'readonly [UserRecord | PromiseLike<UserRecord>, WriteResult | PromiseLike<WriteResult>]': 0, 1ts(2345)
但是为什么呢?我匹配了承诺的返回类型。我做错了什么?
【问题讨论】:
标签: typescript promise google-cloud-functions