回答編集履歴
2
文法を修正しました
answer
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
###### 1. 別のコンテキストから得た関数を promisify するケース
|
12
12
|
|
13
|
-
vm.runInNewContext の結果として得られるオブジェクトは、vm.runInNewContext を実行しているのとは別のコンテキストで生成されたものになり
|
13
|
+
vm.runInNewContext の結果として得られるオブジェクトは、vm.runInNewContext を実行しているのとは別のコンテキストで生成されたものになり、文字列にすると同じでも、instanceof の結果が異なります。
|
14
14
|
|
15
15
|
```javascript
|
16
16
|
const array1 = [1, 2, 3];
|
1
文章を補足しました
answer
CHANGED
@@ -3,14 +3,14 @@
|
|
3
3
|
実験としてその行を消すと、おそらく↓のテストが失敗するでしょう。
|
4
4
|
[/test/parallel/test-util-promisify.js](https://github.com/nodejs/node/blob/master/test/parallel/test-util-promisify.js#L62)
|
5
5
|
|
6
|
-
|
6
|
+
ケースとしては以下が思いつきました。
|
7
7
|
|
8
8
|
1. 別のコンテキストから得た関数を promisify するケース
|
9
9
|
2. `class Foo extends Function` のインスタンスを promisify するケース
|
10
10
|
|
11
11
|
###### 1. 別のコンテキストから得た関数を promisify するケース
|
12
12
|
|
13
|
-
vm.runInNewContext の結果として得られるオブジェクトは、vm.runInNewContext を実行しているのとは別のコンテキストで生成されたものになります。
|
13
|
+
vm.runInNewContext の結果として得られるオブジェクトは、vm.runInNewContext を実行しているのとは別のコンテキストで生成されたものになります。たとえば、instanceof が期待通りの結果を返さない場合があります。
|
14
14
|
|
15
15
|
```javascript
|
16
16
|
const array1 = [1, 2, 3];
|
@@ -61,7 +61,7 @@
|
|
61
61
|
// → [true, false]
|
62
62
|
```
|
63
63
|
|
64
|
-
↑のように、Function を継承するクラス Foo のインスタンスを promisify する場合に、setPrototypeOf しないと結果
|
64
|
+
↑のように、Function を継承するクラス Foo のインスタンスを promisify する場合に、setPrototypeOf しないと、結果は Foo のインスタンスではなくなります。
|
65
65
|
|
66
66
|
---
|
67
67
|
|