無効なJSON文字列をチェックしてエラーをスローするスクリプトを作成しようとしています。私はこれを約束しています(彼らの働き方をよりよく理解するために)。バニラJSの約束事を理解しようとしています
function parsePromised(value) {
var promise = new Promise(
function(fulfilled, rejected) {
try {
JSON.parse(value)
} catch (e) {
rejected(e)
}
fulfilled('fulfilled')
}
)
console.log(promise)
return promise;
}
parsePromised('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}').then(console.log);
私は理解していないので、コンソールは3行(私のスクリプトのconsole.logは2行、エラーは1行)を返します。ここにあります:
私が理解しようとしているのは、最初のケースの出力と2番目のケースの出力が異なる理由と、エラーがスローされる理由です。私は約束をうまく呼び出すと思う。ありがとう!
最終的なエラーは、 'console.log'が' this'またはconsoleをコンソールに設定する必要があるからです。呼び出されるとコンソールには設定されません。あなたは '.then(console.log.bind(console));'を実行する必要があります。 – ste2425