Вы неправильно поняли, что тестирует оператор is
. Он проверяет, указывают ли две переменные на тот же объект , если две переменные имеют одинаковое значение.
Из документации для оператора is
:
Операторы
is
иis not
проверяют идентичность объекта:x is y
истинно тогда и только тогда, когдаx
иy
являются одним и тем же объектом.Вместо этого используйте оператор
==
:print x == y
Отправляет
True
.x
иy
представляют собой два отдельных списка:x[0] = 4 print y # prints [1, 2, 3] print x == y # prints False
Если вы используете функцию
id()
, вы увидите, чтоx
иy
имеют разные идентификаторы:>>> id(x) 4401064560 >>> id(y) 4401098192
, но если вы должны назначить
y
наx
, то оба указывают на один и тот же объект:>>> x = y >>> id(x) 4401064560 >>> id(y) 4401064560 >>> x is y True
и
is
показывают, что оба являются одним и тем же объектом, он возвращаетTrue
.
Когда я запускаю этот код (без vuejs), я получаю сообщение об ошибке, связанной с необходимостью подключения до публикации. Вам нужно переместить вызов session.publish внутри обратного вызова session.connect.
. Другой тип, который вы получаете, выглядит так, будто вы передаете объект вместо идентификатора элемента, либо в OT.initPublisher, сеанс .publish или session.subscribe. Каждый из этих методов имеет аргумент, который должен быть либо HTMLNode, либо идентификатором HTMLNode. Вы получаете эту ошибку, если передаете, например. вместо Object и внутри opentok пытается сделать document.querySelectorAll (объект) и получает null обратно.
попробуйте следующее: `
import OT from 'YOUR PATH'
export default {
name: 'Video-call',
created () {
var session = OT.initSession('apikey', 'sessionid')
var publisher = OT.initPublisher()
session.connect('token', function (err) {
console.log(err)
})
console.log(session)
console.log(publisher)
session.publish(publisher)
session.on('streamCreated', function (event) {
session.subscribe(event.stream)
})
}
}
`